#include "comunicacao_cliente.h"

int main(int argc, char **argv){ 
  int sockfd;
  unsigned short int serv_port;
  struct sockaddr_in servaddr;

  if (argc != 3){
    printf("Uso: cliente <IP-Servidor> <Porta>\n");
    exit(1);
  }

  /* Porta do servidor */
  serv_port = (unsigned short int)atoi(argv[2]);

  /* Tenta criar socket */
  if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))==-1){
    printf("Erro na criacao do socket.\n");
    exit(1);
  }

  /* Inicializa estrutura 'servaddr' */
  bzero(&servaddr, sizeof(servaddr));
  servaddr.sin_family = AF_INET;
  servaddr.sin_port = htons(serv_port);
  /* Testa se recebeu um IP valido */
  if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr)!=1){
    printf("Endereco de IP invalido.\n");
    exit(1);
  }

  /* Abre banco de dados para conferir respostadas do servidor */
  Inicializa();

  if(executa_sistema_cliente(sockfd, (struct sockaddr *)&servaddr)<0)
    printf("Erro na comunicacao com o servidor.\n");

  /* Libera memoria banco de dados */
  Libera();
  close(sockfd);

  return 0;
} 
